package helper

import (
	"crypto/rand"
	"math/big"
)

/**
 * 获取int类型的区间随机数
 */
func GetRandInt(min, max int) (r int, err error) {
	_r, err := GetRandInt64(int64(min), int64(max))
	if err != nil {
		return
	}
	r = int(_r)
	return
}


/**
 * 获取int64类型的区间随机数
 */
func GetRandInt64(min, max int64) (r int64, err error) {
	if min == max {
		r = min
		return
	}
	if min > max {
		max, min = min, max
	}
	result, err := rand.Int(rand.Reader, big.NewInt(max-min))
	if err != nil {
		return
	}
	r = result.Int64() + min

	b, err := rand.Int(rand.Reader, big.NewInt(2))
	if err == nil && b.Int64() == 1 {
		r += 1
	}

	return
}
